home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
BARNET
/
PROGRAMMING
/
DOCS
/
ZEROPAGE.TXT
< prev
Wrap
Text File
|
1996-10-28
|
29KB
|
802 lines
This is an incomplete list of the allocation of address space in 'zero page'.
It is currently maintained by Matthew Wilcox <mrw103@york.ac.uk> and is
currently available as ftp://ftp.barnet.ac.uk/pub/Acorn/zeropage.txt or
http://www.york.ac.uk/~mrw103/zeropage.txt. If you can't get it using
either of these methods then mail me, asking *nicely*. Permission is
granted to copy this document freely as long as it remains intact. Please
mail me any corrections or additions to the current maintainer so they can
be incorporated into the list.
Last updated on Sun 13th October 1996
Contributors (alphabetically) :
Andy Armstrong
Carol Carpenter
Ben Dooks
Andrew Miles
Gordon Rogers
Richard Sargeant
Nick Smith
Matthew Wilcox
Mark Wooding
This document is designed to be viewed in a spreadsheet or database that
supports variable tab stops. As a result, it is possible that when viewed
in a web browser or text editor, some of the items will be misaligned. It
now also exceeds 80 columns. Sorry. Each of the columns headed by a number
contain information for that version of the operating system. All addresses
are given in hexadecimal and refer to the start of the word containing the
value. Where a range is given, it is given to the beginning of the last
word in the range. Where it is necessary to refer to less than an entire
word, the notation <address of word> B<n> is used to refer to a byte and
<address of word> b<n> is used to refer to a bit within a word. These are
shown in the order that the bits 0..31 appear. I think this is the most
consistent way of showing this; let me know if you have a better method of
representing these data.
I'd be amused to include details of Arthur (0.1, 1.0 & 1.2), RISC OS 2.01
and RISC OS 3.0, but the chances of finding machines running any of these
versions of the OS are negligible. I've reluctantly removed the names for
the bits of memory that I didn't know - I quite enjoyed people mailing me
and telling me that they'd made a discovery in Garroting Deep, but they've
all been split up as people found bits in the middle and some of them do
have known uses on different OS. In short, keeping them would have confused
me. Sorry.
No addresses are guaranteed to remain in the same place between different
versions of the OS. Always use the defined system interfaces in preference
to direct accesses if possible. No liability is assumed for any loss or
damage which may result as the result of yourself or others use, misuse or
inability to use any of the information contained in this document.
2.00 3.10 3.50 3.60 3.70 Contents
0 0 0 0 0 Branch Through Zero handler
4 4 4 4 4 Undefined Instruction handler
8 8 8 8 8 Software Interrupt handler
C C C C C Prefetch Abort handler
10 10 10 10 10 Data Abort handler
14 14 14 14 14 Address Exception handler
18 18 18 18 18 IRQ handler
1C-FC 1C-FC 1C-FC 1C-FC 1C-FC FIQ routine
100 3AC Address called by ROM IRQ handler routine.
104 b4 Escape condition occured
104 b20 Speaker enabled
108 Value of R13_irq after last IRQ happened
10C Monotonic time
110 B0 RAM speed (low byte)
110 B1 RAM speed (high byte)
110 b16 MEMC1 if clear, MEMC1a or later if set
114 114 114 114 Copy of MEMC control register
118 118 118 Address called on a reset.
118 11C 11C MemoryLimit value
11C 120 398 Undefined instruction handler address
120 124 3A0 Prefetch abort handler address
124 128 3A4 Data abort handler address
128 12C 3A8 Address exception handler address
12C 130 130 Address of Error handler
130 134 134 Address of Error buffer
134 138 138 R0 on entry to Error handler
138 13C 13C R12 on entry to CallBack handler
13C 140 140 Address of CallBack handler
140 144 144 Address of CallBack register buffer
144 148 148 R12 on entry to BreakPoint handler
148 14C 14C BreakPoint handler address
14C 150 150 Address of BreakPoint register buffer
150 154 154 R12 on entry to Escape handler
154 158 158 Address of Escape handler
158 15C 15C R12 on entry to Event handler
15C 160 160 Address of Event handler
164-560 164-560 - - - Page tables for up to 8Mb RAM [1]
- - 170 Address of VRAM, if present, else address of screen in DRAM
- - 174 Size of VRAM, if present, else max screen size
- - 178 Address of DRAM bank 0
- - 17C Size of DRAM bank 0
- - 180 Address of DRAM bank 1
- - 184 Size of DRAM bank 1
- - 1A0 Amount of VRAM present
- - 1C0-1EC RAM copy of CMOS bytes 192-239
- - 1F0-2AC RAM copy of CMOS bytes 0-191
- - 2B0-2D0 Dynamic area control block for application workspace [2]
- - 2D4-2F4 Dynamic area control block for free memory pool [2]
- - 2F8-318 Dynamic area control block for system heap [2]
- - 31C Memory move in progress
- - 320 RAM copy of MMU control word
564 564 Address of page tables
568 568 Highest page number
160 56C 56C Total amount of RAM in machine in bytes
564 570 570 Application space
568 574 574 R12 on entry to Unused SWI handler
56C 578 578 Unused SWI handler address
570 57C 57C Exit handler address
574 580 580 R12 on entry to Exit handler
578 584 584 R12 on entry to UpCall handler
57C 588 588 UpCall handler address
58C 58C Base of ROM & Podule modules list
590 B0 First key pressed in keyboard internal key format
590 B1 Second key pressed in keyboard internal key format
590 B2 Keyboard driver ID code
590 B3 Old keyboard driver ID code
594
598 B0
598 b8 Caps lock status
598 b9 Num lock status
598 B2 Mouse driver ID
598 B3 Keyboard ID
59C
5A0
5A4
5A8
5AC
5B0
5B4 5A0 Mouse X coordinates
5B8 5A4 Mouse Y coordinates
5BC
5B0 5C0 5AC Mouse X multiplier
5B4 5C4 5B0 Mouse Y multiplier
5C8 5B4 Address of keyboard handler
5CC 5B8 Left coordinate of mouse bounding box
560 5BC Bottom coordinate of mouse bounding box
564 5C0 Right coordinate of mouse bounding box
568 5C4 Top coordinate of mouse bounding box
56C-78C Unknown
880-8BC 790-7CC Addresses of module SWI linked lists
7D0 7D0 Address of Module chain
8C4 7D4 7D4 Currently Active Object pointer
7D8 7D8 UserV (0)
7DC 7DC ErrorV (1)
7E0 7E0 IrqV (2)
7E4 7E4 WrchV (3)
7E8 7E8 RdchV (4)
7EC 7EC CLIV (5)
7F0 7F0 ByteV (6)
7F4 7F4 WordV (7)
7F8 7F8 FileV (8)
7FC 7FC ArgsV (9)
800 800 BGetV (10)
804 804 BPutV (11)
808 808 GBPBV (12)
80C 80C FindV (13)
810 810 ReadLineV (14)
814 814 FSCV (15)
818 818 EventV (16)
81C 81C ?V (17)
820 820 ?V (18)
824 824 ?V (19)
828 828 InsV (20)
82C 82C RemV (21)
830 830 CnpV (22)
834 834 UKVDU23V (23)
838 838 UKSWIV (24)
83C 83C UKPLOTV (25)
840 840 MouseV (26)
844 844 VDUXV (27)
848 848 TickerV (28)
84C 84C UpcallV (29)
850 850 ChngEnvironmentV (30)
854 854 SpriteV (31)
858 858 DrawV (32)
85C 85C EconetV (33)
860 860 ColourV (34)
864 864 PaletteV (35)
868 868 SerialV (36)
86C 86C ?V (37)
870 870 ?V (38)
874 874 ?V (39)
878 878 ?V (40)
87C 87C ?V (41)
880 880 ?V (42)
884 884 ?V (43)
888 888 ?V (44)
88C 88C ?V (45)
890 890 ?V (46)
894 894 ?V (47)
988 898 898 Address of exception registers dump
89C-99C 89C-99C Buffer for errors, GSTransing, etc.
9A0 B0 9A0 B0 Osbyte &A6
9A0 B1 9A0 B1 Osbyte &A7
9A0 B2 9A0 B2 Osbyte &A8
9A0 B3 9A0 B3 Osbyte &A9
9A4 B0 9A4 B0 Osbyte &AA
9A4 B1 9A4 B1 Osbyte &AB
9A4 B2 9A4 B2 Osbyte &AC
9A4 B3 9A4 B3 Osbyte &AD
9A8 B0 9A8 B0 Osbyte &AE
9A8 B1 9A8 B1 Osbyte &AF
9A8 B2 9A8 B2 '50 Hz counter' state (&B0)
9A8 B3 9A8 B3 Input source (&B1)
9AC B0 9AC B0 Osbyte &B2
9AC B1 9AC B1 Osbyte &B3
9AC B2 9AC B2 Osbyte &B4
9AC B3 9AC B3 RS423 input interpretation state (&B5)
9B0 B0 9B0 B0 NoIgnore state (&B6)
9B0 B1 9B0 B1 Osbyte &B7
9B0 B2 9B0 B2 Osbyte &B8
9B0 B3 9B0 B3 Osbyte &B9
9B4 B0 9B4 B0 Osbyte &BA
9B4 B1 9B4 B1 Osbyte &BB
9B4 B2 9B4 B2 Osbyte &BC
9B4 B3 9B4 B3 Osbyte &BD
9B8 B0 9B8 B0 Osbyte &BE
9B8 B1 9B8 B1 RS423 busy flag (&BF)
9B8 B2 9B8 B2 RS423 control byte (&C0)
9B8 B3 9B8 B3 Flash counter (&C1)
9BC B0 9BC B0 Duration of second colour (&C2)
9BC B1 9BC B1 Duration of first colour (&C3)
9BC B2 9BC B2 Keyboard auto-repeat delay (&C4)
9BC B3 9BC B3 Keyboard auto-repeat rate (&C5)
9C0 B0 9C0 B0 *Exec file handle (&C6)
9C0 B1 9C0 B1 *Spool file handle (&C7)
9C0 B2 9C0 B2 Break/Escape effect flags (&C8)
9C0 B3 9C0 B3 Keyboard disable flag (&C9)
9C4 B0 9C4 B0 Keyboard status byte (&CA)
9C4 B1 9C4 B1 RS423 input buffer minimum space (&CB)
9C4 B2 9C4 B2 RS423 ignore flag (&CC)
9C4 B3 9C4 B3 Osbyte &CD
9C8 B0 9C8 B0 Osbyte &CE
9C8 B1 9C8 B1 Osbyte &CF
9C8 B2 9C8 B2 Osbyte &D0
9C8 B3 9C8 B3 Osbyte &D1
9CC B0 9CC B0 Osbyte &D2
9CC B1 9CC B1 Bell sound channel (&D3)
9CC B2 9CC B2 Bell sound volume (&D4)
9CC B3 9CC B3 Bell sound frequency (&D5)
9D0 B0 9D0 B0 Bell sound duration (&D6)
9D0 B1 9D0 B1 Osbyte &D7
9D0 B2 9D0 B2 Length of function key string (&D8)
9D0 B3 9D0 B3 Paged mode line count (&D9)
9D4 B0 9D4 B0 Number of bytes in VDU queue (&DA)
9D4 B1 9D4 B1 Tab key code (&DB)
9D4 B2 9D4 B2 Escape character (&DC)
9D4 B3 9D4 B3 Interpretation of input values &C0-&CF (&DD)
9D8 B0 9D8 B0 Interpretation of input values &D0-&DF (&DE)
9D8 B1 9D8 B1 Interpretation of input values &E0-&EF (&DF)
9D8 B2 9D8 B2 Interpretation of input values &F0-&FF (&E0)
9D8 B3 9D8 B3 Interpretation of function keys (&E1)
9DC B0 9DC B0 Interpretation of Shift-function key (&E2)
9DC B1 9DC B1 Interpretation of Ctrl-function key (&E3)
9DC B2 9DC B2 Interpretation of Ctrl-Shift-function key (&E4)
9DC B3 9DC B3 Escape key status (&E5)
9E0 B0 9E0 B0 Escape effects (&E6)
9E0 B1 9E0 B1 Osbyte &E7
9E0 B2 9E0 B2 Osbyte &E8
9E0 B3 9E0 B3 Osbyte &E9
9E4 B0 9E4 B0 Osbyte &EA
9E4 B1 9E4 B1 Osbyte &EB
9E4 B2 9E4 B2 Character destination status (&EC)
9E4 B3 9E4 B3 Cursor key status (&ED)
9E8 B0 9E8 B0 Numeric keypad interpretation (&EE)
9E8 B1 9E8 B1 Osbyte &EF
9E8 B2 9E8 B2 Country flag (&F0)
9E8 B3 9E8 B3 Osbyte &F1
9EC B0 9EC B0 RS423 baud rates (&F2)
9EC B1 9EC B1 Timer switch state (&F3)
9EC B2 9EC B2 Osbyte &F4
9EC B3 9EC B3 Printer driver type (&F5)
9F0 B0 9F0 B0 Printer ignore character (&F6)
9F0 B1 9F0 B1 Break key actions (&F7)
9F0 B2 9F0 B2 Osbyte &F8
9F0 B3 9F0 B3 Osbyte &F9
9F4 B0 9F4 B0 VDU driver screen bank number (&FA)
9F4 B1 9F4 B1 Display screen bank number (&FB)
9F4 B2 9F4 B2 Osbyte &FC
9F4 B3 9F4 B3 Last break type (&FD)
9F8 B0 9F8 B0 Shift-Ctrl effect on numeric keypad (&FE)
9F8 B1 9F8 B1 Boot option (&FF)
9F8 B2
9F8 B3
9FC B0 9FC B0 Enable count for Output buffer empty event (0)
9FC B1 9FC B1 Enable count for Input buffer full event (1)
9FC B2 9FC B2 Enable count for Character input event (2)
9FC B3 9FC B3 Enable count for ADC end conversion event (3)
A00 B0 A00 B0 Enable count for Vertical sync event (4)
A00 B1 A00 B1 Enable count for Interval timer event (5)
A00 B2 A00 B2 Enable count for Escape event (6)
A00 B3 A00 B3 Enable count for RS423 error event (7)
A04 B0 A04 B0 Enable count for Econet user remote procedure event (8)
A04 B1 A04 B1 Enable count for User event (9)
A04 B2 A04 B2 Enable count for Mouse button event (10)
A04 B3 A04 B3 Enable count for Key up/down event (11)
A08 B0 A08 B0 Enable count for Sound start of bar event (12)
A08 B1 A08 B1 Enable count for PC Emulator event (13)
A08 B2 A08 B2 Enable count for Econet receive event (14)
A08 B3 A08 B3 Enable count for Econet transmit event (15)
A0C B0 A0C B0 Enable count for Econet OS remote procedure event (16)
A0C B1 A0C B1 Enable count for MIDI event (17)
A0C B2 A0C B2 Enable count for ? event (18)
A0C B3 A0C B3 Enable count for Internet event (19)
A10 B0 A10 B0 Enable count for ? event (20)
A10 B1 A10 B1 Enable count for ? event (21)
A10 B2 A10 B2 Enable count for Device overrun event (22)
A10 B3 A10 B3 Enable count for ? event (23)
A14 B0 A14 B0 Enable count for Internet receive event (24)
A14 B1 A14 B1 Enable count for Internet transmission status event (25)
A14 B2 A14 B2 Enable count for ? event (26)
A14 B3 A14 B3 Enable count for ? event (27)
A18 B0 A18 B0 Enable count for Portable BMU interrupt event (28)
A18 B1 A18 B1 Enable count for ? event (29)
A18 B2 A18 B2 Enable count for ? event (30)
A18 B3 A18 B3 Enable count for ? event (31)
A1C A1C LSW of first copy of system clock
A20 B0 A20 B0 MSB of first copy of system clock
A20 B1
A20 B2
A20 B3
A24 A24 LSW of second copy of system clock
A28 B0 A28 B0 MSB of second copy of system clock
A28 B1
A28 B2
A28 B3
A2C A2C LSW of RAM copy of RTC
A30 B0 A30 B0 MSB of RAM copy of RTC
A30 B1
A30 B2
A30 B3
A34
A38 A38 LSW of interval timer
A3C B0 A3C B0 MSB of interval timer
A3C B1
A3C B2
A3C B3 A3C B3 Current flash state
A40 B0
A40 B1
A40 B2
A40 B3 TV vertical adjust
A44 b0 TV interlace flag
A48
A4C
A50
A54
A58
A5C
A60
A64 A64 Address of first free byte in keyboard buffer
A68 A68 Address of first free byte in RS423 input buffer
A6C A6C Address of first free byte in RS423 output buffer
A70 A70 Address of first free byte in printer buffer
A74 A74 Address of first free byte in sound channel 0 buffer
A78 A78 Address of first free byte in sound channel 1 buffer
A7C A7C Address of first free byte in sound channel 2 buffer
A80 A80 Address of first free byte in sound channel 3 buffer
A84 A84 Address of first free byte in speech buffer
A88 A88 Address of first free byte in mouse buffer
A8C A8C Address of first used byte in keyboard buffer
A90 A90 Address of first used byte in RS423 input buffer
A94 A94 Address of first used byte in RS423 output buffer
A98 A98 Address of first used byte in printer buffer
A9C A9C Address of first used byte in sound channel 0 buffer
AA0 AA0 Address of first used byte in sound channel 1 buffer
AA4 AA4 Address of first used byte in sound channel 2 buffer
AA8 AA8 Address of first used byte in sound channel 3 buffer
AAC AAC Address of first used byte in speech buffer
AB0 AB0 Address of first used byte in mouse buffer
AB4 Address of System Variable data block
AB8 [referred to by OS_CLI]
ABC [referred to by OS_CLI]
AC0 [referred to by OS_CLI]
AC4 Return code
AC8 Return code limit
ACC Current size of sprite area
AD0 Current size of RAM filing system
AD4 Current size of font cache
AD8 AD8 Base of OS_CallEvery/CallAfter list
ADC MSW of time that program was started
AE0 B0 LSB of time that program was started
AE0 B1 AE0 B1 input file handle
AE0 B2 AE0 B2 output file handle
AE0 B3
AE4 b8 Set if outstanding callbacks
AE4 b9 Set if error occured during the last SWI.
AE4 b10 Outstanding OS_AddCallback.
AE4 b16 IOEB ASIC present
AE4 b17 82C710 present
AE4 b18 LCD ASIC present
AE4 b19 82C711 present
AE8-BE4 Program environment string
BE8 Register save block on callback from default exit handler
BEC
BF0
BF4
BF8
BFC
C00
C04
C08
C0C
C10
C14
C18
C1C
C20
C24
C28 page size in bytes
C2C
C30
C34-C54 IRQ handler routine
C58 R12 value for device 0 vector
C5C Address of device 0 handler
C60 points to next handler for device 0
C64 R12 value for device 1 vector
C68 Address of device 1 handler
C6C points to next handler for device 1
C70 R12 value for device 2 vector
C74 Address of device 2 handler
C78 points to next handler for device 2
C7C R12 value for device 3 vector
C80 Address of device 3 handler
C84 points to next handler for device 3
C88 R12 value for device 4 vector
C8C Address of device 4 handler
C90 points to next handler for device 4
C94 R12 value for device 5 vector
C98 Address of device 5 handler
C9C points to next handler for device 5
CA0 R12 value for device 6 vector
CA4 Address of device 6 handler
CA8 points to next handler for device 6
CAC R12 value for device 7 vector
CB0 Address of device 7 handler
CB4 points to next handler for device 7
CB8 R12 value for device 8 vector
CBC Address of device 8 handler
CC0 points to next handler for device 8
CC4 R12 value for device 9 vector
CC8 Address of device 9 handler
CCC points to next handler for device 9
CD0 R12 value for device 10 vector
CD4 Address of device 10 handler
CD8 points to next handler for device 10
CDC R12 value for device 11 vector
CE0 Address of device 11 handler
CE4 points to next handler for device 11
CE8 R12 value for device 12 vector
CEC Address of device 12 handler
CF0 points to next handler for device 12
CF4 R12 value for device 13 vector
CF8 Address of device 13 handler
CFC points to next handler for device 13
D00 R12 value for device 14 vector
D04 Address of device 14 handler
D08 points to next handler for device 14
D0C R12 value for device 15 vector
D10 Address of device 15 handler
D14 points to next handler for device 15
D18 R12 value for no device
D1C address of no device handler
D20 points to next handler for no device
D24-E20 IRQ register A priority table
E24-F20 IRQ register B priority table
F24 F24 Address of AddCallBack list
F28-F3C F28-F3C Heap manager workspace (USR/SVC)
F40-F54 F40-F54 Heap manager workspace (IRQ)
F58
F5C Address of printer buffer
F60 Size of printer buffer
- F64 Unique Machine ID word 0
- F68 Unique Machine ID word 1
F6C
F70
F74
F78
F7C
- F80 B0 Kernel flag to prevent reentering MessageTrans_ErrorLookup
F80 B1
F80 B2
F80 B3
F84
F88
F8C
F90
F94
F98
F9C
FA0
FA4
FA8
FAC
FB0
FB4
FB8
FBC
FC0
FC4
FC8
FCC
FD0
FD4
FD8
FDC
FE0
FE4
FE8
FEC
- FF0 Address of SharedCLibrary:Messages messagetrans block
FF4 Private workspace pointer for FPEmulator
FF8 Bottom 16 bits of task handle
FFC Modula-2 private word.
Start of VDU workspace. Some of the 'Contents' have a bracketed number
after them; these values are available through OS_ReadVduVariables with that
reason code.
1000-101C Foreground ECF pattern or repeated colour
1020-103C Background ECF pattern or repeated colour
1040 GCOL action for foreground colour (151)
1044 GCOL action for background colour (152)
1048 Graphics foreground colour (153)
104C Graphics background colour (154)
1050 Left-hand column of the graphics window (128)
1054 Bottom row of the graphics window (129)
1058 Right-hand column of the graphics window (130)
105C Top row of the graphics window (131)
1060 B0
1060 B1
1060 B2
1060 B3 Base of VDU queue
1064-1070 Rest of VDU queue
1074 Offset of top of VDU queue
1078 Address to call when VDU queue full
107C Amount of RAM required by current screen mode
1080 X window limit
1084 Y window limit
1088 Length of a row in pixels
108C
1090 Log2 of (LineLength/5)
1094 b0 Non-graphic mode
1094 b1 Teletext
1094 b2 Gap mode
1098 X Eigenvalue of pixels
109C Y Eigenvalue of pixels
10A0 Log2 of number of bytes per character
10A4 Log2 of number of bits per pixel
10A8 Default ECF, dependent on bits per pixel.
10AC Maximum text column value
10B0 Maximum text row value
10B4 [referred to by ROM PaletteV]
10B8 Log2 of number of pixels per word
10BC Pointer to current GCOL/PLOT colour codes
10C0 Address of the start of screen used by VDU drivers (148)
10C4 Number of pixels per word - 1.
10C8
10CC Log2 of the number of colours
10D0 Log2 of the number of bits by which colours are shifted
10D4
10D8
10DC
10E0 Left-hand column of the text window (132)
10E4 Bottom row of the text window (133)
10E8 Right-hand column of the text window (134)
10EC Top row of the text window (135)
10F0 x coordinate of the graphics origin (ec) (136)
10F4 y coordinate of the graphics origin (ec) (137)
10F8 x coordinate of the graphics cursor (ec) (138)
10FC y coordinate of the graphics cursor (ec) (139)
1100 x coordinate of oldest graphics cursor (ic) (140)
1104 y coordinate of oldest graphics cursor (ic) (141)
1108 x coordinate of previous graphics cursor (ic) (142)
110C y coordinate of previous graphics cursor (ic) (143)
1110 x coordinate of the graphics cursor (ic) (144)
1114 y coordinate of the graphics cursor (ic) (145)
1118 x coordinate of new point (ic) (146)
111C y coordinate of new point (ic) (147)
1120 Text foreground colour (155)
1124 Text background colour (156)
1128 Output text cursor X coordinates
112C Output text cursor Y coordinates
1130 Absolute address on the screen of output cursor
1134 Input text cursor X coordinates
1138 Input text cursor Y coordinates
113C Absolute address on the screen of input cursor
1140 [referred to by VDU 23,8]
1144 Number of lines left to clear in the text block
1148 b0 Printer output enabled by VDU 2
1148 b3 Text window enabled
1148 b4 Shadow mode enabled
114C B0 X Offset of the near corner for VDU 23,8
114C B1 Y Offset of the near corner for VDU 23,8
114C B2 X Offset of the text cursor in the current text window
114C B3 Y Offset of the text cursor in the current text window
1150 B0 X Offset of the far corner for VDU 23,8
1150 B1 Y Offset of the far corner for VDU 23,8
1150 B2
1150 B3
1154 B0 X start coordinate for the VDU 23,8 block
1154 B1 Y start coordinate for the VDU 23,8 block
1154 B2 X end coordinate for the VDU 23,8 block
1154 B3 Y end coordinate for the VDU 23,8 block
1158 Cursor mask
115C Relative address of the top line of the copy cursor
1160 Relative address of the bottom line of the copy cursor
1164 Cursor counter
1168 Delay on cursor toggling (in Vsyncs)
116C Actual value given on last VDU 23,0,10
1170 EOR mask to invert pixels on screen for current mode
1174 Address of routine to display either cursor in this mode
1178 Address of the start of screen used by display hardware (149)
117C
1180
1184 Highest logical colour number available in this mode
1188
118C Current screen mode or pointer to mode selector block
1190
1194
1198
119C
11A0
11A4
11A8
11AC
11B0
11B4
11B8
11BC
11C0
11C4
11C8
11CC
11D0 Current screen mode number
11D4 Tint for text foreground colour (159)
11D8 Tint for text background colour (160)
11DC Tint for graphics foreground colour (157)
11E0 Tint for graphics background colour (158)
11E4 Amount of memory currently allocated to the screen (150)
11E8 Highest mode number available (161)
11EC
11F0 b0 [referenced by ReadVduVars]
11F0 b1 [referenced by ReadVduVars]
11F0 b2 [referenced by ReadVduVars]
11F0 b3 text printing direction vertical if set
11F0 b8 [referenced by OS_Word 22]
11F0 b9 Cursor state
11F0 b21 ChangedBox calculation enabled if set
11F0 b30 [referenced by ReadVduVars]
11F4 Stack of cursor on/off calls
11F8
11FC
1200
1204
1208
120C
1210
1214
1218
121C
1220
1224
1228 VIDC clock speed in kHz (172)
122C - 135C Graphics workspace. Variety of uses.
1360 x size of VDU 5 chars (in pixels) (162)
1364 y size of VDU 5 chars (in pixels) (163)
1368 x spacing of VDU 5 chars (in pixels) (164)
136C y spacing of VDU 5 chars (in pixels) (165)
1370 x size of VDU 4 chars (in pixels) (167)
1374 y size of VDU 4 chars (in pixels) (168)
1378 x spacing of VDU 4 chars (in pixels) (169)
137C y spacing of VDU 4 chars (in pixels) (170)
1380 Address of fast line-draw routine (166)
1384 Address of colour blocks for current GCOLs (171)
1388 First flash colour for logical colour 0
138C First flash colour for logical colour 1
1390 First flash colour for logical colour 2
1394 First flash colour for logical colour 3
1398 First flash colour for logical colour 4
139C First flash colour for logical colour 5
13A0 First flash colour for logical colour 6
13A4 First flash colour for logical colour 7
13A8 First flash colour for logical colour 8
13AC First flash colour for logical colour 9
13B0 First flash colour for logical colour 10
13B4 First flash colour for logical colour 11
13B8 First flash colour for logical colour 12
13BC First flash colour for logical colour 13
13C0 First flash colour for logical colour 14
13C4 First flash colour for logical colour 15
13C8 First flash colour for border
13CC First flash colour for mouse colour 1
13D0 First flash colour for mouse colour 2
13D4 First flash colour for mouse colour 3
13D8
13DC
13E0
13E4
13E8
13EC
13F0
13F4
13F8 Second flash colour for logical colour 0
13FC Second flash colour for logical colour 1
1400 Second flash colour for logical colour 2
1404 Second flash colour for logical colour 3
1408 Second flash colour for logical colour 4
140C Second flash colour for logical colour 5
1410 Second flash colour for logical colour 6
1414 Second flash colour for logical colour 7
1418 Second flash colour for logical colour 8
141C Second flash colour for logical colour 9
1420 Second flash colour for logical colour 10
1424 Second flash colour for logical colour 11
1428 Second flash colour for logical colour 12
142C Second flash colour for logical colour 13
1430 Second flash colour for logical colour 14
1434 Second flash colour for logical colour 15
1438 Second flash colour for border
143C Second flash colour for mouse colour 1
1440 Second flash colour for mouse colour 2
1444 Second flash colour for mouse colour 3
1448
144C
1450
1454
1458
145C
1460
1464
1468 [used by ROM PaletteV in mysterious circumstances]
146C
1470
1474
1478
147C
1480 - 14BC Foreground ECF
14C0 - 14FC Background ECF
1500 - 153C Background ECF masked against background
1540 Dot pattern count down to restarting pattern
1544 Dot pattern current state word 0
1548 Dot pattern current state word 1
154C Dot pattern repeat length
1550b0 Native ECFs (opposed to BBC-style)
1554 Address of system sprite area
1558 - 1564 Name of currently selected sprite
1568 Pointer to current sprite in system sprite area
156C B0 Height of pointer 1
156C B1 Height of pointer 2
156C B2 Height of pointer 3
156C B3 Height of pointer 4
1570 B0 ActiveX of pointer 1
1570 B1 ActiveX of pointer 2
1570 B2 ActiveX of pointer 3
1570 B3 ActiveX of pointer 4
1574 B0 ActiveY of pointer 1
1574 B1 ActiveY of pointer 2
1574 B2 ActiveY of pointer 3
1574 B3 ActiveY of pointer 4
1578 B0 Current pointer number
1578 b7 Pointer not linked
157C Pointer X coordinates
1580 Pointer Y coordinates
1584 Copy of VIDC control register
1588
158C
1590
1594
1598
159C
15A0 B0 ClaimScreenMemory flag
15A0 B1
15A0 B2
15A0 B3
15A4 - 1668 Unknown
166C ChangedBox flag word
1670 ChangedBox x coordinate of left edge
1674 ChangedBox y coordinate of bottom edge
1678 ChangedBox x coordinate of right edge
167C ChangedBox y coordinate of top edge
1680 - 3FFC Unknown
4000-7FFC RISC OS scratch space
[0] Sorry for using footnotes, but some entries would be too big
otherwise
[1] Bottom 28 bits are the logical address of the physical page of RAM that
this entry corresponds to. The top nybble is the page protection level.
[2] The format of a dynamic area control block is:
+00 Address of next entry in list
+04 Area number
+08 Address of memory associated with memory
+0C Flags word (see OS_DynamicArea)
+10 Current size of area
+14 Maximum size of area
+18 r12 for area handler
+1C Address of area handler
+20 Address of name of area